

1.
// 安装机器人
// http://wiki.ros.org/Robots/Care-O-bot
sudo apt-get install ros-kinetic-care-o-bot


 安装依赖

sudo apt-get install ros-kinetic-libpcan
sudo apt-get install ros-kinetic-moveit
sudo apt-get install ros-kinetic-libdlib
sudo apt-get install ros-kinetic-opengm
sudo apt-get install ros-kinetic-cob-extern



#include <ipa_building_navigation/A_star_pathplanner.h>
sudo apt-get install coinor-clp

http://www.math.uwaterloo.ca/tsp/concorde/downloads/downloads.htm

COIN-OR 组件安装顺序:
1. CoinUtils
2. Osi
3. Clp
4. Cgl
5. Cbc

// 源码安装
https://github.com/coin-or/CoinUtils


// 源码安装
https://github.com/coin-or/Osi

https://github.com/coin-or/Clp

https://github.com/coin-or/Cgl

///////////
Hello, I had a problem with Cbc library, I tried to install it like third-party lib.
I solved this problem, just installed this lib from ubuntu pack, you can try these commands:
sudo apt-get install coinor-libcoinutils-dev
sudo apt-get install coinor-libclp-dev
sudo apt-get install coinor-libcbc-dev
sudo apt-get install coinor-libcgl-dev

sudo apt-get install ros-kinetic-cob-extern

roslaunch ipa_room_exploration room_exploration_action_server.launch
rosrun ipa_room_exploration room_exploration_client


2. 如何运行?

ipa_coverage_planning/ipa_room_exploration/:  ros/launch/room_room_exploration_action_server_params.yaml in ros/launch to the wanted algorithms and settings


2.1
Start the action server using the file /ros/launch/room_exploration_action_server.launch, 
which executes the /ros/src/room_exploration_action_server.cpp file. If the server crashes for some reason 
(e.g. no valid map given by the client) it respawns with a little delay.


zy@zy:~/Desktop/ipa_coverage_planning-indigo_dev/src/ipa_room_exploration/ros/launch$ roslaunch ipa_room_exploration room_exploration_action_server.launch 



///////
roslaunch ipa_room_exploration room_exploration_action_server.launch
rosrun ipa_room_exploration room_exploration_client
rosrun ipa_room_exploration room_exploration_server


//  运行
rosrun ipa_room_exploration room_exploration_server

//////////////////////////////////////////////
// 解析

1. 
// 修改弓字形的间隔
std::cout << "Boustrophedon grid_spacing_as_int=" << grid_spacing_as_int << std::endl;
grid_spacing_as_int = 4;


2. // 机器人的尺寸
	const float robot_radius = goal.robot_radius;
	const int robot_radius_in_pixel = (robot_radius / map_resolution);

	double AStarPlanner::planPath(const cv::Mat& map, const cv::Point& start_point, const cv::Point& end_point,
		const double downsampling_factor, const double robot_radius, const double map_resolution,
		const int end_point_valid_neighborhood_radius, std::vector<cv::Point>* route)

3. // 对每个cell的访问顺序
	(cell_visiting_order == OPTIMAL_TSP)